【笔记】Java的原子数据

前言

Java的原子数据学习笔记

继承结构

graph TD
  Object --> AtomicBoolean

  Object --> Number
  Number --> AtomicInteger

  Object --> AtomicIntegerArray
  
  Object --> Number
  Number --> AtomicLong

  Object --> AtomicLongArray
  
  Object --> AtomicReference

  Object --> AtomicReferenceArray


  style Object fill:#f0f8ff,stroke:#696969
  style AtomicBoolean fill:#f0f8ff,stroke:#696969
  style Number fill:#f0f8ff,stroke:#696969
  style AtomicInteger fill:#f0f8ff,stroke:#696969
  style AtomicIntegerArray fill:#f0f8ff,stroke:#696969
  style AtomicLong fill:#f0f8ff,stroke:#696969
  style AtomicLongArray fill:#f0f8ff,stroke:#696969
  style AtomicReference fill:#f0f8ff,stroke:#696969
  style AtomicReferenceArray fill:#f0f8ff,stroke:#696969

AtomicInteger

创建对象

1
AtomicInteger atomicInteger = new AtomicInteger();

0:缺省值,初始值

1
AtomicInteger atomicInteger = new AtomicInteger(0);

实例方法

获取值

1
int value = atomicInteger.get();

修改值

1
2
3
int value = 0;

atomicInteger.set(value);

获取旧值并修改为新值

1
2
3
int newValue = 0;

int oldValue = atomicInteger.getAndSet(newValue);

比较成功则修改为新值

1
2
3
4
int compareValue = 0;
int newValue = 0;

boolean success = atomicInteger.compareAndSet(compareValue, newValue);

获取旧值并将值自增1

1
int oldValue = atomicInteger.getAndIncrement();

获取旧值并将值自减1

1
int oldValue = atomicInteger.getAndDecrement();

获取旧值并将值加指定值

1
2
3
int value = 0;

int oldValue = atomicInteger.getAndAdd(value);

将值自增1并获取新值

1
int newValue = atomicInteger.incrementAndGet();

将值自减1并获取新值

1
int newValue = atomicInteger.decrementAndGet();

将值加指定值并获取新值

1
2
3
int value = 0;

int newValue = atomicInteger.addAndGet(value);

完成